__init__()
라는 이름으로 정의된다.__init__()
메서드는 첫 번째 매개변수로 항상 self
를 받아야 하며, 추가적인 매개변수를 통해 사용자 정의 초기화를 수행할 수 있다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 30)
print(p.name) # 출력: Alice
__del__()
이라는 이름으로 정의된다.__del__()
의 호출 시점은 명확하지 않다. 이에 따라 의존적인 동작은 최소화하는 것이 권장된다.
class FileHandler:
def __init__(self, filename):
self.file = open(filename, 'w')
def __del__(self):
self.file.close()
print("파일이 닫혔습니다.")
f = FileHandler("output.txt")
del f # 소멸자 호출됨
생성자와 소멸자는 객체의 생애주기(lifecycle)를 관리하는 데 핵심적인 역할을 하며, 자원의 효율적인 사용과 안정적인 프로그램 구성을 위해 적절히 활용되어야 한다.